// Generated from JsonLexer.g4 by ANTLR 4.5.1
// jshint ignore: start
var antlr4 = require('antlr4/index');


var serializedATN = ["\u0003\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd",
    "\u0002\u000e\u0088\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004",
    "\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t",
    "\u0007\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004",
    "\f\t\f\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010",
    "\t\u0010\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0003\u0002\u0006\u0002",
    "\'\n\u0002\r\u0002\u000e\u0002(\u0003\u0002\u0003\u0002\u0003\u0003",
    "\u0003\u0003\u0003\u0004\u0003\u0004\u0003\u0005\u0003\u0005\u0003\u0006",
    "\u0003\u0006\u0003\u0007\u0003\u0007\u0003\b\u0003\b\u0003\t\u0003\t",
    "\u0003\t\u0003\t\u0003\t\u0003\n\u0003\n\u0003\n\u0003\n\u0003\n\u0003",
    "\n\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003",
    "\f\u0003\f\u0003\f\u0007\fL\n\f\f\f\u000e\fO\u000b\f\u0003\f\u0003\f",
    "\u0003\r\u0003\r\u0003\r\u0005\rV\n\r\u0003\u000e\u0003\u000e\u0003",
    "\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000f\u0003\u000f\u0003",
    "\u0010\u0005\u0010a\n\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0006",
    "\u0010f\n\u0010\r\u0010\u000e\u0010g\u0003\u0010\u0005\u0010k\n\u0010",
    "\u0003\u0010\u0005\u0010n\n\u0010\u0003\u0010\u0003\u0010\u0003\u0010",
    "\u0003\u0010\u0005\u0010t\n\u0010\u0003\u0010\u0005\u0010w\n\u0010\u0003",
    "\u0011\u0003\u0011\u0003\u0011\u0007\u0011|\n\u0011\f\u0011\u000e\u0011",
    "\u007f\u000b\u0011\u0005\u0011\u0081\n\u0011\u0003\u0012\u0003\u0012",
    "\u0005\u0012\u0085\n\u0012\u0003\u0012\u0003\u0012\u0002\u0002\u0013",
    "\u0003\u0003\u0005\u0004\u0007\u0005\t\u0006\u000b\u0007\r\b\u000f\t",
    "\u0011\n\u0013\u000b\u0015\f\u0017\r\u0019\u0002\u001b\u0002\u001d\u0002",
    "\u001f\u000e!\u0002#\u0002\u0003\u0002\n\u0005\u0002\u000b\f\u000f\u000f",
    "\"\"\u0004\u0002$$^^\n\u0002$$11^^ddhhppttvv\u0005\u00022;CHch\u0003",
    "\u00022;\u0003\u00023;\u0004\u0002GGgg\u0004\u0002--//\u0090\u0002\u0003",
    "\u0003\u0002\u0002\u0002\u0002\u0005\u0003\u0002\u0002\u0002\u0002\u0007",
    "\u0003\u0002\u0002\u0002\u0002\t\u0003\u0002\u0002\u0002\u0002\u000b",
    "\u0003\u0002\u0002\u0002\u0002\r\u0003\u0002\u0002\u0002\u0002\u000f",
    "\u0003\u0002\u0002\u0002\u0002\u0011\u0003\u0002\u0002\u0002\u0002\u0013",
    "\u0003\u0002\u0002\u0002\u0002\u0015\u0003\u0002\u0002\u0002\u0002\u0017",
    "\u0003\u0002\u0002\u0002\u0002\u001f\u0003\u0002\u0002\u0002\u0003&",
    "\u0003\u0002\u0002\u0002\u0005,\u0003\u0002\u0002\u0002\u0007.\u0003",
    "\u0002\u0002\u0002\t0\u0003\u0002\u0002\u0002\u000b2\u0003\u0002\u0002",
    "\u0002\r4\u0003\u0002\u0002\u0002\u000f6\u0003\u0002\u0002\u0002\u0011",
    "8\u0003\u0002\u0002\u0002\u0013=\u0003\u0002\u0002\u0002\u0015C\u0003",
    "\u0002\u0002\u0002\u0017H\u0003\u0002\u0002\u0002\u0019R\u0003\u0002",
    "\u0002\u0002\u001bW\u0003\u0002\u0002\u0002\u001d]\u0003\u0002\u0002",
    "\u0002\u001fv\u0003\u0002\u0002\u0002!\u0080\u0003\u0002\u0002\u0002",
    "#\u0082\u0003\u0002\u0002\u0002%\'\t\u0002\u0002\u0002&%\u0003\u0002",
    "\u0002\u0002\'(\u0003\u0002\u0002\u0002(&\u0003\u0002\u0002\u0002()",
    "\u0003\u0002\u0002\u0002)*\u0003\u0002\u0002\u0002*+\b\u0002\u0002\u0002",
    "+\u0004\u0003\u0002\u0002\u0002,-\u0007}\u0002\u0002-\u0006\u0003\u0002",
    "\u0002\u0002./\u0007\u007f\u0002\u0002/\b\u0003\u0002\u0002\u000201",
    "\u0007.\u0002\u00021\n\u0003\u0002\u0002\u000223\u0007<\u0002\u0002",
    "3\f\u0003\u0002\u0002\u000245\u0007]\u0002\u00025\u000e\u0003\u0002",
    "\u0002\u000267\u0007_\u0002\u00027\u0010\u0003\u0002\u0002\u000289\u0007",
    "v\u0002\u00029:\u0007t\u0002\u0002:;\u0007w\u0002\u0002;<\u0007g\u0002",
    "\u0002<\u0012\u0003\u0002\u0002\u0002=>\u0007h\u0002\u0002>?\u0007c",
    "\u0002\u0002?@\u0007n\u0002\u0002@A\u0007u\u0002\u0002AB\u0007g\u0002",
    "\u0002B\u0014\u0003\u0002\u0002\u0002CD\u0007p\u0002\u0002DE\u0007w",
    "\u0002\u0002EF\u0007n\u0002\u0002FG\u0007n\u0002\u0002G\u0016\u0003",
    "\u0002\u0002\u0002HM\u0007$\u0002\u0002IL\u0005\u0019\r\u0002JL\n\u0003",
    "\u0002\u0002KI\u0003\u0002\u0002\u0002KJ\u0003\u0002\u0002\u0002LO\u0003",
    "\u0002\u0002\u0002MK\u0003\u0002\u0002\u0002MN\u0003\u0002\u0002\u0002",
    "NP\u0003\u0002\u0002\u0002OM\u0003\u0002\u0002\u0002PQ\u0007$\u0002",
    "\u0002Q\u0018\u0003\u0002\u0002\u0002RU\u0007^\u0002\u0002SV\t\u0004",
    "\u0002\u0002TV\u0005\u001b\u000e\u0002US\u0003\u0002\u0002\u0002UT\u0003",
    "\u0002\u0002\u0002V\u001a\u0003\u0002\u0002\u0002WX\u0007w\u0002\u0002",
    "XY\u0005\u001d\u000f\u0002YZ\u0005\u001d\u000f\u0002Z[\u0005\u001d\u000f",
    "\u0002[\\\u0005\u001d\u000f\u0002\\\u001c\u0003\u0002\u0002\u0002]^",
    "\t\u0005\u0002\u0002^\u001e\u0003\u0002\u0002\u0002_a\u0007/\u0002\u0002",
    "`_\u0003\u0002\u0002\u0002`a\u0003\u0002\u0002\u0002ab\u0003\u0002\u0002",
    "\u0002bc\u0005!\u0011\u0002ce\u00070\u0002\u0002df\t\u0006\u0002\u0002",
    "ed\u0003\u0002\u0002\u0002fg\u0003\u0002\u0002\u0002ge\u0003\u0002\u0002",
    "\u0002gh\u0003\u0002\u0002\u0002hj\u0003\u0002\u0002\u0002ik\u0005#",
    "\u0012\u0002ji\u0003\u0002\u0002\u0002jk\u0003\u0002\u0002\u0002kw\u0003",
    "\u0002\u0002\u0002ln\u0007/\u0002\u0002ml\u0003\u0002\u0002\u0002mn",
    "\u0003\u0002\u0002\u0002no\u0003\u0002\u0002\u0002op\u0005!\u0011\u0002",
    "pq\u0005#\u0012\u0002qw\u0003\u0002\u0002\u0002rt\u0007/\u0002\u0002",
    "sr\u0003\u0002\u0002\u0002st\u0003\u0002\u0002\u0002tu\u0003\u0002\u0002",
    "\u0002uw\u0005!\u0011\u0002v`\u0003\u0002\u0002\u0002vm\u0003\u0002",
    "\u0002\u0002vs\u0003\u0002\u0002\u0002w \u0003\u0002\u0002\u0002x\u0081",
    "\u00072\u0002\u0002y}\t\u0007\u0002\u0002z|\t\u0006\u0002\u0002{z\u0003",
    "\u0002\u0002\u0002|\u007f\u0003\u0002\u0002\u0002}{\u0003\u0002\u0002",
    "\u0002}~\u0003\u0002\u0002\u0002~\u0081\u0003\u0002\u0002\u0002\u007f",
    "}\u0003\u0002\u0002\u0002\u0080x\u0003\u0002\u0002\u0002\u0080y\u0003",
    "\u0002\u0002\u0002\u0081\"\u0003\u0002\u0002\u0002\u0082\u0084\t\b\u0002",
    "\u0002\u0083\u0085\t\t\u0002\u0002\u0084\u0083\u0003\u0002\u0002\u0002",
    "\u0084\u0085\u0003\u0002\u0002\u0002\u0085\u0086\u0003\u0002\u0002\u0002",
    "\u0086\u0087\u0005!\u0011\u0002\u0087$\u0003\u0002\u0002\u0002\u0010",
    "\u0002(KMU`gjmsv}\u0080\u0084\u0003\u0002\u0004\u0002"].join("");


var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN);

var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); });

function JsonLexer(input) {
	antlr4.Lexer.call(this, input);
    this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.PredictionContextCache());
    return this;
}

JsonLexer.prototype = Object.create(antlr4.Lexer.prototype);
JsonLexer.prototype.constructor = JsonLexer;

JsonLexer.EOF = antlr4.Token.EOF;
JsonLexer.WS = 1;
JsonLexer.LBRACKET = 2;
JsonLexer.RBRACKET = 3;
JsonLexer.COMMA = 4;
JsonLexer.COLON = 5;
JsonLexer.LSQUARE = 6;
JsonLexer.RSQUARE = 7;
JsonLexer.TRUE = 8;
JsonLexer.FALSE = 9;
JsonLexer.NULL = 10;
JsonLexer.STRING = 11;
JsonLexer.NUMBER = 12;


JsonLexer.modeNames = [ "DEFAULT_MODE" ];

JsonLexer.literalNames = [ null, null, "'{'", "'}'", "','", "':'", "'['", 
                           "']'", "'true'", "'false'", "'null'" ];

JsonLexer.symbolicNames = [ null, "WS", "LBRACKET", "RBRACKET", "COMMA", 
                            "COLON", "LSQUARE", "RSQUARE", "TRUE", "FALSE", 
                            "NULL", "STRING", "NUMBER" ];

JsonLexer.ruleNames = [ "WS", "LBRACKET", "RBRACKET", "COMMA", "COLON", 
                        "LSQUARE", "RSQUARE", "TRUE", "FALSE", "NULL", "STRING", 
                        "ESC", "UNICODE", "HEX", "NUMBER", "INT", "EXP" ];

JsonLexer.grammarFileName = "JsonLexer.g4";



exports.JsonLexer = JsonLexer;

